package org.shj.suanfa

/**
 * 假设有一群孩子和一些饼干，每块饼干大小为 s(j), 第i个孩子 如果分到大小至少为 g(i)时，则会感到满足。如何分配
 * 才能使得到满足的孩子数最大。一个孩子只能得到一块饼干，一块饼干不能分给多个孩子
 * 例如： 孩子的满足度：  [1,2,3]  饼干大小 [1,2]
 * 则： 只有2个孩子得到满足
 * 
 * 
 */
object S005 {
  def main(args: Array[String]): Unit = {
    val childs = Array(1, 4, 9, 7, 3, 4)
    val cookies = Array(6, 4, 5, 1, 1, 1, 1)
    
    val sortChild = childs.sorted
    var sortedCook = cookies.sorted
    
    var i = 0
    var j = 0
    var cnt = 0
    
    while(i < childs.length && j < cookies.length){
      if(sortChild(i) <= sortedCook(j)){ //当前饼干是否满足孩子需要
        cnt += 1
        i += 1
        j += 1
      }else{
        j += 1
      }
    }
    println(s"总共有${cnt}个孩子得到满足")
  }
}